<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <!-- コンテナをロード -->
  <script type="text/javascript" src="../src/container.js" ></script>
</head>
<body>
  <div id="stdout"></div>
  <script type="text/javascript">
var stdout = document.getElementById( "stdout" );

// クラス
function Kitten( name ) { this.name = name; }
Kitten.prototype = {
    meta: {
        "@Container" : {
            "@Initialize": function(obj) {
                stdout.innerHTML += obj.name + " is initilized.<br/>";
           }
       }
    },
    getName: function () { return this.name; }
};

var c = new container.Container( function( binder ) {

  // シングルトン
  binder.bind( Kitten ).to( "mii" ).inject( {
    "name": "mii"
  }).scope( container.Scope.Singleton );

  // プロトタイプ
  binder.bind( Kitten ).to( "tora" ).inject( {
    "name": "tora"
  }).scope( container.Scope.Prototype );

  // EagerSingleton / コンテナ生成時に作成される。
  binder.bind( Kitten ).to( "shiro" ).inject( {
    "name": "shiro"
  }).scope( container.Scope.EagerSingleton );

});

  </script>
</body>
</html>